home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2410 / 2410.xpi / chrome / content / foxmarks-overlay.js < prev    next >
Text File  |  2010-01-28  |  3KB  |  97 lines

  1. /* 
  2.  Copyright 2005-2007 Foxmarks Inc.
  3.  
  4.  foxmarks-overlay.js: implement the foxmarks overlay into the main browser
  5.  window
  6.  */
  7. var Xmarks;
  8. if(Xmarks === undefined){
  9.     Xmarks = {};
  10. }
  11.  
  12. (function() {
  13. var xm = Xmarks;
  14.  
  15. var foxmarksObserver = {
  16.     observe: function(subject, topic, data) {
  17.         var result = eval(data);
  18.         //ignore component finish messages
  19.         if(result.status == 3)
  20.             return;
  21.         var status = result.status;
  22.         var msg = result.msg || "";
  23.         var complete = status != 1;
  24.  
  25.         window.XULBrowserWindow.setJSStatus("Xmarks: " + msg);
  26.  
  27.         if (complete) {
  28.             setTimeout(foxmarksObserver.clearStatus, status != 0 ? 5000: 1000);
  29.         }
  30.     },
  31.     clearStatus: function() {
  32.         window.XULBrowserWindow.setJSStatus("");
  33.      }
  34. }
  35.  
  36. var foxmarksPopupObserver = {
  37.     observe: function(subject, topic, data) {
  38.         var JSON = Cc["@mozilla.org/dom/json;1"].
  39.             createInstance(Ci.nsIJSON);
  40.         xm.NewUserPopup(JSON.decode(data));
  41.     }
  42. }
  43. xm.SetKeyboardShortcut = function(id, key) {
  44.     var element = document.getElementById(id);
  45.     element.setAttribute("key", key);
  46.     element.setAttribute("disabled", key ? false : true);
  47. };
  48.  
  49. function FoxmarksBrowserLoad() {
  50.     var os = Cc["@mozilla.org/observer-service;1"].
  51.         getService(Ci.nsIObserverService);
  52.     os.addObserver(foxmarksObserver, "foxmarks-service", false);
  53.     os.addObserver(foxmarksPopupObserver, "foxmarks-newpopup", false);
  54.  
  55.     xm.SetKeyboardShortcut("XmarksSyncNow", xm.gSettings.syncShortcutKey);
  56.     xm.SetKeyboardShortcut("OpenFoxmarksDialog",
  57.         xm.gSettings.openSettingsDialogShortcutKey);
  58.     xm.SetKeyboardShortcut("FoxmarksSimSiteKey",
  59.         xm.gSettings.siteinfoDialogShortcutKey);
  60.  
  61.     // Load SERP
  62.     Xmarks.SERP.init();
  63.  
  64.     // Load similiar sites
  65.     Xmarks.SimSites.init();
  66. }
  67.  
  68. xm.OnPopupShowing = function() {
  69.     if (xm.gSettings.hideStatusIcon) {
  70.         document.getElementById("foxmarks-showstatusicon").
  71.             removeAttribute("checked");
  72.     } else {
  73.         document.getElementById("foxmarks-showstatusicon").
  74.             setAttribute("checked", "true");
  75.     }
  76.     return true;
  77. };
  78.  
  79. xm.ToggleIcon = function(event) {
  80.     xm.gSettings.hideStatusIcon = !xm.gSettings.hideStatusIcon;
  81. };
  82.  
  83. function FoxmarksBrowserUnload() {
  84.     var os = Cc["@mozilla.org/observer-service;1"].
  85.         getService(Ci.nsIObserverService);
  86.  
  87.     try {
  88.         os.removeObserver(foxmarksObserver, "foxmarks-service");
  89.     } catch (e) {
  90.         Xmarks.LogWrite("Warning: removeObserver failed.");
  91.     }
  92. }
  93.  
  94. window.addEventListener("load", FoxmarksBrowserLoad, false);
  95. window.addEventListener("unload", FoxmarksBrowserUnload, false);
  96. })();
  97.